package com.netposa.datawarehouse.statistics.vo;

import com.netposa.datawarehouse.statistics.utils.NumberUtils;
import java.math.BigDecimal;

public class StructureCountVO {
   protected Long face = 0L;
   protected Double facePer;
   protected Long human = 0L;
   protected Double humanPer;
   protected Long vehicle = 0L;
   protected Double vehiclePer;
   protected Long nonmotor = 0L;
   protected Double nonmotorPer;
   protected Long wifi = 0L;
   protected Double wifiPer;
   protected Long rfid = 0L;
   protected Double rfidPer;
   protected Long all = 0L;

   public StructureCountVO() {
   }

   public StructureCountVO(Long face, Long human, Long vehicle, Long nonmotor, Long wifi) {
      this.face = face;
      this.human = human;
      this.vehicle = vehicle;
      this.nonmotor = nonmotor;
      this.wifi = wifi;
      this.all = face + human + vehicle + wifi + nonmotor;
      this.humanPer = NumberUtils.safeDiv(human, this.all, 3);
      this.vehiclePer = NumberUtils.safeDiv(vehicle, this.all, 3);
      this.nonmotorPer = NumberUtils.safeDiv(nonmotor, this.all, 3);
      this.wifiPer = NumberUtils.safeDiv(wifi, this.all, 3);
      this.facePer = face != 0L ? (new BigDecimal(String.valueOf(1))).subtract(new BigDecimal(String.valueOf(this.humanPer))).subtract(new BigDecimal(String.valueOf(this.vehiclePer))).subtract(new BigDecimal(String.valueOf(this.nonmotorPer))).subtract(new BigDecimal(String.valueOf(this.wifiPer))).doubleValue() : 0.0;
   }

   public StructureCountVO(Long face, Long human, Long vehicle, Long nonmotor, Long wifi, Long rfid) {
      this.face = face;
      this.human = human;
      this.vehicle = vehicle;
      this.nonmotor = nonmotor;
      this.wifi = wifi;
      this.rfid = rfid;
      this.all = face + human + vehicle + wifi + nonmotor + rfid;
      this.humanPer = NumberUtils.safeDiv(human, this.all, 3);
      this.vehiclePer = NumberUtils.safeDiv(vehicle, this.all, 3);
      this.nonmotorPer = NumberUtils.safeDiv(nonmotor, this.all, 3);
      this.wifiPer = NumberUtils.safeDiv(wifi, this.all, 3);
      this.rfidPer = NumberUtils.safeDiv(rfid, this.all, 3);
      this.facePer = face != 0L ? (new BigDecimal(String.valueOf(1))).subtract(new BigDecimal(String.valueOf(this.humanPer))).subtract(new BigDecimal(String.valueOf(this.vehiclePer))).subtract(new BigDecimal(String.valueOf(this.nonmotorPer))).subtract(new BigDecimal(String.valueOf(this.wifiPer))).subtract(new BigDecimal(String.valueOf(this.rfidPer))).doubleValue() : 0.0;
   }

   public StructureCountVO(Long face, Long human, Long vehicle, Long nonmotor) {
      this.face = face;
      this.human = human;
      this.vehicle = vehicle;
      this.nonmotor = nonmotor;
      this.all = face + human + vehicle + nonmotor;
      this.facePer = NumberUtils.safeDiv(face, this.all, 3);
      this.humanPer = NumberUtils.safeDiv(human, this.all, 3);
      this.nonmotorPer = NumberUtils.safeDiv(nonmotor, this.all, 3);
      this.vehiclePer = vehicle != 0L ? (new BigDecimal(String.valueOf(1))).subtract(new BigDecimal(String.valueOf(this.facePer))).subtract(new BigDecimal(String.valueOf(this.nonmotorPer))).subtract(new BigDecimal(String.valueOf(this.humanPer))).doubleValue() : 0.0;
   }

   public Long getFace() {
      return this.face;
   }

   public Double getFacePer() {
      return this.facePer;
   }

   public Long getHuman() {
      return this.human;
   }

   public Double getHumanPer() {
      return this.humanPer;
   }

   public Long getVehicle() {
      return this.vehicle;
   }

   public Double getVehiclePer() {
      return this.vehiclePer;
   }

   public Long getNonmotor() {
      return this.nonmotor;
   }

   public Double getNonmotorPer() {
      return this.nonmotorPer;
   }

   public Long getWifi() {
      return this.wifi;
   }

   public Double getWifiPer() {
      return this.wifiPer;
   }

   public Long getRfid() {
      return this.rfid;
   }

   public Double getRfidPer() {
      return this.rfidPer;
   }

   public Long getAll() {
      return this.all;
   }

   public void setFace(Long face) {
      this.face = face;
   }

   public void setFacePer(Double facePer) {
      this.facePer = facePer;
   }

   public void setHuman(Long human) {
      this.human = human;
   }

   public void setHumanPer(Double humanPer) {
      this.humanPer = humanPer;
   }

   public void setVehicle(Long vehicle) {
      this.vehicle = vehicle;
   }

   public void setVehiclePer(Double vehiclePer) {
      this.vehiclePer = vehiclePer;
   }

   public void setNonmotor(Long nonmotor) {
      this.nonmotor = nonmotor;
   }

   public void setNonmotorPer(Double nonmotorPer) {
      this.nonmotorPer = nonmotorPer;
   }

   public void setWifi(Long wifi) {
      this.wifi = wifi;
   }

   public void setWifiPer(Double wifiPer) {
      this.wifiPer = wifiPer;
   }

   public void setRfid(Long rfid) {
      this.rfid = rfid;
   }

   public void setRfidPer(Double rfidPer) {
      this.rfidPer = rfidPer;
   }

   public void setAll(Long all) {
      this.all = all;
   }

   public boolean equals(Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof StructureCountVO)) {
         return false;
      } else {
         StructureCountVO other = (StructureCountVO)o;
         if (!other.canEqual(this)) {
            return false;
         } else {
            label167: {
               Object this$face = this.getFace();
               Object other$face = other.getFace();
               if (this$face == null) {
                  if (other$face == null) {
                     break label167;
                  }
               } else if (this$face.equals(other$face)) {
                  break label167;
               }

               return false;
            }

            Object this$facePer = this.getFacePer();
            Object other$facePer = other.getFacePer();
            if (this$facePer == null) {
               if (other$facePer != null) {
                  return false;
               }
            } else if (!this$facePer.equals(other$facePer)) {
               return false;
            }

            label153: {
               Object this$human = this.getHuman();
               Object other$human = other.getHuman();
               if (this$human == null) {
                  if (other$human == null) {
                     break label153;
                  }
               } else if (this$human.equals(other$human)) {
                  break label153;
               }

               return false;
            }

            Object this$humanPer = this.getHumanPer();
            Object other$humanPer = other.getHumanPer();
            if (this$humanPer == null) {
               if (other$humanPer != null) {
                  return false;
               }
            } else if (!this$humanPer.equals(other$humanPer)) {
               return false;
            }

            label139: {
               Object this$vehicle = this.getVehicle();
               Object other$vehicle = other.getVehicle();
               if (this$vehicle == null) {
                  if (other$vehicle == null) {
                     break label139;
                  }
               } else if (this$vehicle.equals(other$vehicle)) {
                  break label139;
               }

               return false;
            }

            Object this$vehiclePer = this.getVehiclePer();
            Object other$vehiclePer = other.getVehiclePer();
            if (this$vehiclePer == null) {
               if (other$vehiclePer != null) {
                  return false;
               }
            } else if (!this$vehiclePer.equals(other$vehiclePer)) {
               return false;
            }

            label125: {
               Object this$nonmotor = this.getNonmotor();
               Object other$nonmotor = other.getNonmotor();
               if (this$nonmotor == null) {
                  if (other$nonmotor == null) {
                     break label125;
                  }
               } else if (this$nonmotor.equals(other$nonmotor)) {
                  break label125;
               }

               return false;
            }

            label118: {
               Object this$nonmotorPer = this.getNonmotorPer();
               Object other$nonmotorPer = other.getNonmotorPer();
               if (this$nonmotorPer == null) {
                  if (other$nonmotorPer == null) {
                     break label118;
                  }
               } else if (this$nonmotorPer.equals(other$nonmotorPer)) {
                  break label118;
               }

               return false;
            }

            Object this$wifi = this.getWifi();
            Object other$wifi = other.getWifi();
            if (this$wifi == null) {
               if (other$wifi != null) {
                  return false;
               }
            } else if (!this$wifi.equals(other$wifi)) {
               return false;
            }

            label104: {
               Object this$wifiPer = this.getWifiPer();
               Object other$wifiPer = other.getWifiPer();
               if (this$wifiPer == null) {
                  if (other$wifiPer == null) {
                     break label104;
                  }
               } else if (this$wifiPer.equals(other$wifiPer)) {
                  break label104;
               }

               return false;
            }

            label97: {
               Object this$rfid = this.getRfid();
               Object other$rfid = other.getRfid();
               if (this$rfid == null) {
                  if (other$rfid == null) {
                     break label97;
                  }
               } else if (this$rfid.equals(other$rfid)) {
                  break label97;
               }

               return false;
            }

            Object this$rfidPer = this.getRfidPer();
            Object other$rfidPer = other.getRfidPer();
            if (this$rfidPer == null) {
               if (other$rfidPer != null) {
                  return false;
               }
            } else if (!this$rfidPer.equals(other$rfidPer)) {
               return false;
            }

            Object this$all = this.getAll();
            Object other$all = other.getAll();
            if (this$all == null) {
               if (other$all != null) {
                  return false;
               }
            } else if (!this$all.equals(other$all)) {
               return false;
            }

            return true;
         }
      }
   }

   protected boolean canEqual(Object other) {
      return other instanceof StructureCountVO;
   }

   public int hashCode() {
      
      int result = 1;
      Object $face = this.getFace();
      result = result * 59 + ($face == null ? 43 : $face.hashCode());
      Object $facePer = this.getFacePer();
      result = result * 59 + ($facePer == null ? 43 : $facePer.hashCode());
      Object $human = this.getHuman();
      result = result * 59 + ($human == null ? 43 : $human.hashCode());
      Object $humanPer = this.getHumanPer();
      result = result * 59 + ($humanPer == null ? 43 : $humanPer.hashCode());
      Object $vehicle = this.getVehicle();
      result = result * 59 + ($vehicle == null ? 43 : $vehicle.hashCode());
      Object $vehiclePer = this.getVehiclePer();
      result = result * 59 + ($vehiclePer == null ? 43 : $vehiclePer.hashCode());
      Object $nonmotor = this.getNonmotor();
      result = result * 59 + ($nonmotor == null ? 43 : $nonmotor.hashCode());
      Object $nonmotorPer = this.getNonmotorPer();
      result = result * 59 + ($nonmotorPer == null ? 43 : $nonmotorPer.hashCode());
      Object $wifi = this.getWifi();
      result = result * 59 + ($wifi == null ? 43 : $wifi.hashCode());
      Object $wifiPer = this.getWifiPer();
      result = result * 59 + ($wifiPer == null ? 43 : $wifiPer.hashCode());
      Object $rfid = this.getRfid();
      result = result * 59 + ($rfid == null ? 43 : $rfid.hashCode());
      Object $rfidPer = this.getRfidPer();
      result = result * 59 + ($rfidPer == null ? 43 : $rfidPer.hashCode());
      Object $all = this.getAll();
      result = result * 59 + ($all == null ? 43 : $all.hashCode());
      return result;
   }

   public String toString() {
      return "StructureCountVO(face=" + this.getFace() + ", facePer=" + this.getFacePer() + ", human=" + this.getHuman() + ", humanPer=" + this.getHumanPer() + ", vehicle=" + this.getVehicle() + ", vehiclePer=" + this.getVehiclePer() + ", nonmotor=" + this.getNonmotor() + ", nonmotorPer=" + this.getNonmotorPer() + ", wifi=" + this.getWifi() + ", wifiPer=" + this.getWifiPer() + ", rfid=" + this.getRfid() + ", rfidPer=" + this.getRfidPer() + ", all=" + this.getAll() + ")";
   }
}
